package com.zbcbms.service;

import com.zbcbms.entity.*;
import com.zbcbms.entity.tableData.UserTableData;
import com.zbcbms.entity.chart.UserJoinTimeCountChart;
import com.zbcbms.entity.chart.UserRoleCountChart;
import com.zbcbms.entity.vo.UserVo;
import javafx.collections.ObservableList;

import java.util.List;


/**
 * @author fengq
 */
public interface UserService extends IService<User>{
    /**
     * getPasswordByNumber
     * @param number
     * @return
     */
    String getPasswordByNumber(String number);

    /**
     * getAllUserTableData 查询所有用户，渲染表格
     * @return
     */
    ObservableList<UserTableData> getAllUserTableData();

    /**
     * getAllUserNumber 查询所有的用户编号
     * @return
     */
    ObservableList<String> getAllUserNumber();

    /**
     * getUserNumberByKeyword
     * @param keyword
     * @return
     */
    ObservableList<String> getUserNumberByKeyword(String keyword);

    /**
     * getUserNameByNumber
     * @param number
     * @return
     */
    String getUserNameByNumber(String number);

    /**
     * getUserByNumber 根据编号查询用户信息
     * @param number
     * @return
     */
    UserVo getUserByNumber(String number);

    /**
     * getUserCountByRole
     * @return
     */
    List<UserRoleCountChart> getUserCountByRole();

    /**
     * 根据加入时间统计数量 最新20条
     * @return
     */
    List<UserJoinTimeCountChart> getUserCountByJoinTime();

    /**
     * getAllDeletedUser 查询所有的已经被删除的数据
     * @return
     */
    ObservableList<UserTableData> getAllDeletedUser();

    /**
     * getAllUserVoByKeyword
     * @param keyword
     * @return
     */
    ObservableList<UserTableData> getAllUserVoByKeyword(String keyword);
}
